#ifndef _NP_PROBLEMS_VISUALIZER_HEADER_
#define _NP_PROBLEMS_VISUALIZER_HEADER_

#include <windows.h>
#include <objidl.h>
#include <gdiplus.h>

namespace Library
{
    class Visualizer
    {
    public:
        Visualizer(HDC hdc, const std::vector<std::pair<double, double> >& points, const int displayHeight, const int displayWeigth);
        void Draw(const std::vector<std::pair<int, int> >& connections);

    private:
        double GetMaxWidth();
        double GetMinWidth();
        double GetMaxHeight();
        double GetMinHeight();
        void MapCoordinatesToScreen();

    protected:
        HDC hdc_;
        Gdiplus::Pen pen_;
        const int displayHeight_;
        const int displayWeight_;
        Gdiplus::Graphics graphics_;
        std::vector<std::pair<double, double> > points_;
    };
}

#endif//_NP_PROBLEMS_VISUALIZER_HEADER_
